package com.leeue.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * 针对前端和后端联调跨域配置
 *
 * @author liyue
 * @date 2019/11/27 10:48
 */
@Configuration
public class CorsConfig {

    public CorsConfig() {
    }

    @Bean
    public CorsFilter corsFilter() {
        //1.添加cors 配置信息
        CorsConfiguration configuration = new CorsConfiguration();

        //设置允许的域名访问地址，如果设置成 * 所有的网站都可以进行访问地址 需要进行访问的就把这个域名加上,一般是前端调用地址
        configuration.addAllowedOrigin("http://localhost:8080");
        configuration.addAllowedOrigin("http://leeue.top");

        //设置是否能够发送cookie信息  有时候浏览器会携带cookie信息，这里设置成true就可以
        configuration.setAllowCredentials(true);

        //设置允许的请求方式 使用add
        configuration.addAllowedMethod("*");

        //设置允许的header  有时候header里面会携带一些请求信息
        configuration.addAllowedHeader("*");

        //2.为url添加映射 我们这里设置所有的url都使用这个
        UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
        //所有的路由都是用这个过滤器
        corsSource.registerCorsConfiguration("/**", configuration);

        //3.返回重新定义好的 corsSource
        return new CorsFilter(corsSource);
    }
}
